import tkinter as tk
import pymssql
from publish_maintenance_task_page import open_publish_maintenance_task_page
from modify_task_status_page import open_modify_task_status_page

#上级管理部门-查询养护任务信息的页面
#maintenance_info.py
def open_maintenance_info(entry1_value):

    maintenance_info_window = tk.Tk()
    maintenance_info_window.title("上级主管部门-养护信息页面")
    maintenance_info_window.geometry("450x350")

    # 提示文本
    label_prompt = tk.Label(maintenance_info_window, text="请输入养护任务名称，查看对应的养护信息：")
    label_prompt.pack(padx=5, pady=5)

    # 输入框
    entry_task_name = tk.Entry(maintenance_info_window)
    entry_task_name.pack(padx=5, pady=5)

    # 显示框
    display_text = tk.Text(maintenance_info_window, height=10, width=40)
    display_text.pack()

    # 显示按钮
    def show_maintenance_info():
        task_name = entry_task_name.get()
        maintenance_data = get_maintenance_info(task_name)
        display_text.delete(1.0, tk.END)
        display_text.insert(tk.END, maintenance_data)

    show_button = tk.Button(maintenance_info_window, text="显示养护信息", command=show_maintenance_info)
    show_button.pack(side=tk.LEFT, padx=10, pady=5)

    # 发布任务按钮
    def task_info():
        open_publish_maintenance_task_page()

    modify_button = tk.Button(maintenance_info_window, text="发布养护任务", command=task_info)
    modify_button.pack(side=tk.LEFT, padx=10, pady=5)

    # 修改任务状态按钮
    def modify_task_status():
        maintenance_info_window.destroy()
        open_modify_task_status_page()

    modify_status_button = tk.Button(maintenance_info_window, text="修改养护任务状态", command=modify_task_status)
    modify_status_button.pack(side=tk.LEFT, padx=10, pady=5)

    maintenance_info_window.mainloop()


# 从数据库中获取植物养护信息
def get_maintenance_info(task_name):
    try:
        # 连接到数据库
        conn = pymssql.connect(
            host='localhost',
            user='CSY',
            password='211002624',
            database='植物管理系统',
            as_dict=True
        )
        cursor = conn.cursor()

        # 执行查询语句
        query = f"SELECT 养护任务编号,养护任务名称,养护任务执行地点,养护任务执行时间,养护任务执行人员,养护任务描述,养护对象,养护任务状态 FROM 养护 WHERE 养护任务名称 = '{task_name}'"
        cursor.execute(query)

        # 获取查询结果
        maintenance_data = cursor.fetchall()

        # 关闭数据库连接
        conn.close()

        # 格式化结果
        formatted_data = ""
        for data in maintenance_data:
            formatted_data += f"养护任务编号: {data['养护任务编号']}\n养护任务名称: {data['养护任务名称']}\n养护任务执行地点: {data['养护任务执行地点']}\n养护任务执行时间: {data['养护任务执行时间']}\n养护任务执行人员: {data['养护任务执行人员']}\n养护任务描述: {data['养护任务描述']}\n养护对象: {data['养护对象']}\n养护任务状态: {data['养护任务状态']}\n "

        return formatted_data
    except Exception as e:
        print(f"Error: {e}")
        return "查询失败，请检查数据库连接和查询语句。"
